package co.edu.usbcali.hibernate.modelo;

import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * Clientes entity. @author MyEclipse Persistence Tools
 */
@Entity
@Table(name = "CLIENTES", schema = "ANDRIWS")
public class Clientes implements java.io.Serializable {

	// Fields

	private Long cliCedula;
	private String cliNombre;
	private String cliDireccion;
	private String cliTelefono;
	private Set<Mascotas> mascotases = new HashSet<Mascotas>(0);

	// Constructors

	/** default constructor */
	public Clientes() {
	}

	/** minimal constructor */
	public Clientes(Long cliCedula, String cliNombre, String cliDireccion,
			String cliTelefono) {
		this.cliCedula = cliCedula;
		this.cliNombre = cliNombre;
		this.cliDireccion = cliDireccion;
		this.cliTelefono = cliTelefono;
	}

	/** full constructor */
	public Clientes(Long cliCedula, String cliNombre, String cliDireccion,
			String cliTelefono, Set<Mascotas> mascotases) {
		this.cliCedula = cliCedula;
		this.cliNombre = cliNombre;
		this.cliDireccion = cliDireccion;
		this.cliTelefono = cliTelefono;
		this.mascotases = mascotases;
	}

	// Property accessors
	@Id
	@Column(name = "CLI_CEDULA", unique = true, nullable = false, precision = 10, scale = 0)
	public Long getCliCedula() {
		return this.cliCedula;
	}

	public void setCliCedula(Long cliCedula) {
		this.cliCedula = cliCedula;
	}

	@Column(name = "CLI_NOMBRE", nullable = false, length = 30)
	public String getCliNombre() {
		return this.cliNombre;
	}

	public void setCliNombre(String cliNombre) {
		this.cliNombre = cliNombre;
	}

	@Column(name = "CLI_DIRECCION", nullable = false, length = 30)
	public String getCliDireccion() {
		return this.cliDireccion;
	}

	public void setCliDireccion(String cliDireccion) {
		this.cliDireccion = cliDireccion;
	}

	@Column(name = "CLI_TELEFONO", nullable = false, length = 30)
	public String getCliTelefono() {
		return this.cliTelefono;
	}

	public void setCliTelefono(String cliTelefono) {
		this.cliTelefono = cliTelefono;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "clientes")
	public Set<Mascotas> getMascotases() {
		return this.mascotases;
	}

	public void setMascotases(Set<Mascotas> mascotases) {
		this.mascotases = mascotases;
	}

}